<!DOCTYPE html>  
<html>
<meta charset="utf-8" />  
<title>模块化开发</title>  
<body>
    <h1>模块化开发</h1>
    <div>
        复用性、解决变量重名问题
    </div>
    <h2>commonJs</h2>
    <div>
        用于服务器端
        只能在运行时确定
        同步加载
        模块加载的顺序，按照其在代码中出现的顺序。
        Node.js是commonJS规范的主要实践者，它有四个重要的环境变量为模块化的实现提供支持：module、exports、require、global
        commonJS用同步的方式加载模块。在服务端，模块文件都存在本地磁盘，读取非常快，所以这样做不会有问题。
        但是在浏览器端，限于网络原因，更合理的方案是使用异步加载
    </div>
    <h2>AMD(require.js)  CMD(sea.js)</h2>
    <div>
        AMD 推崇依赖前置、提前执行，CMD推崇依赖就近、延迟执行
    </div>
    <h2>es6</h2>
    <div>
        ES6 模块遇到 import 命令时，不会去执行模块，而是生成一个引用，等用到的时候，才去模块中取值。
        因为是动态引用，所以不存在缓存的问题
    </div>
</body>
</html>